package com.mixsmart.core.dao;

import java.util.HashMap;

/**
 * 执行DAO接口
 * @version 1.0
 * @since JDK1.6以上
 * @author lmq
 * <br />
 * 2016年7月23日
 */
public interface IExecuteDao {

	/**
	 * 执行指定资源名称对应的SQL语句
	 * @param sql SQL语句
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean execute(String sql);
	
	/**
	 * 执行指定资源名称对应的SQL或HQL语句
	 * @param hql HQL语句
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean executeHQL(String hql);
	
	/**
	 * 执行指定资源名称对应的SQL语句
	 * @param sql SQL语句
	 * @param params 参数
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean execute(String sql, HashMap<String, Object> params);
	
	/**
	 * 执行指定资源名称对应的HQL语句
	 * @param hql HQL语句
	 * @param params 参数
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean executeHQL(String hql, HashMap<String, Object> params);
	
	/**
	 * 过滤条件语句后执行指定资源名称对应的SQL语句
	 * @param sql SQL语句
	 * @param params 参数
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean executeByFilter(String sql, HashMap<String, Object> params);
	
	/**
	 * 过滤条件语句后执行指定资源名称对应的HQL语句
	 * @param hql HQL语句
	 * @param params 参数
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean executeHQLByFilter(String hql, HashMap<String, Object> params);
	
	/**
	 * 执行指定资源名称对应的多条SQL语句
	 * @param sqls SQL语句数组
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean executes(String[] sqls);
	
	/**
	 * 执行指定资源名称对应的多条HQL语句
	 * @param hqls HQL语句数组
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean executesHQL(String[] hqls);
	
	/**
	 * 执行指定资源名称对应的多条SQL或HQL语句
	 * @param sqls SQL语句数组
	 * @param params 参数
	 * @return 执行成功返回：true；否则返回：false
	 */
	public boolean executes(String[] sqls, HashMap<String, Object> params);
	
	/**
	 * 执行指定资源名称对应的多条HQL语句
	 * @param hqls HQL语句数组
	 * @param params 参数
	 * @return 执行成功返回：true；负责返回：false
	 */
	public boolean executesHQL(String[] hqls, HashMap<String, Object> params);
	
	/**
	 * 过滤条件语句后执行指定资源名称对应的多条SQL或HQL语句
	 * @param sqls SQL语句数组
	 * @param params 参数
	 * @return 执行成功返回：true；负责返回：false
	 */
	public boolean executesByFilter(String[] sqls, HashMap<String, Object> params);
	
	/**
	 * 过滤条件语句后执行指定资源名称对应的多条HQL语句
	 * @param hqls HQL语句数组
	 * @param params 参数
	 * @return 执行成功返回：true；负责返回：false
	 */
	public boolean executesHQLByFilter(String[] hqls, HashMap<String, Object> params);
	
	
}
